home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group96a.txt / 000129_icon-group-sender _Tue Jun 11 13:54:29 1996.msg < prev    next >
Internet Message Format  |  1996-09-05  |  2KB

  1. Received: by cheltenham.cs.arizona.edu; Tue, 11 Jun 1996 07:45:12 MST
  2. To: icon-group@cs.arizona.edu
  3. Date: 11 Jun 1996 13:54:29 +1000
  4. From: ok@goanna.cs.rmit.EDU.AU (Richard A. O'Keefe)
  5. Message-Id: <4piqll$mpm@goanna.cs.rmit.EDU.AU>
  6. Organization: Comp Sci, RMIT, Melbourne, Australia
  7. Sender: icon-group-request@cs.arizona.edu
  8. References: <4pa3hq$lpc@labrador.cs.purdue.edu>, <8gd9395zyb.fsf@galapagos.cse.psu.edu>, <4pga54$2qt@lectura.CS.Arizona.EDU>
  9. Subject: Re: m3 should have SWAP(a,b)
  10. Errors-To: icon-group-errors@cs.arizona.edu
  11. Status: O
  12.  
  13. Concerning swap and rotate.
  14. (1) Burroughs Algol had READLOCK(Variable, Value) which stored Value into
  15.     Variable and returned the old value of Variable.
  16. (2) Didnt "Mary" have a swap operator?
  17. (3) Mesa allowed record constructors on the left hand side of assignment,
  18.     Pair[x,y] := Pair[y,x];
  19.     for example.
  20. (4) Pop-2 allows many forms of rotation.
  21.     For example, to get the effect of a,b,c := b,c,a
  22.     do a, c, b -> a -> b -> c
  23.     (This means Push(a); Push(c); Push(b); PopInto(a); PopInto(b); PopInto(c);)
  24. (5) Dijkstra's notation uses parallel assignment; I believe there have been
  25.     one or two implementations of it.
  26. (6) The Lisp equivalent of swap and rotate is not 'let' but PSETF and
  27.     ROTATEF.
  28.  
  29. When I tried to learn how to play the bagpipes, the reason bagpipers play
  30. all those trills and twiddly bits became instantly apparent:  if you try
  31. to changing fingering from that for note X to that for note Y the way you
  32. would with a recorder or flute, it sounds _horrible_, because the air keeps
  33. on flowing and you get strange sounds as you pass through intermediate
  34. states.  Half the art of piping is dancing all around the notes in order to
  35. pass from one note to another without hitting intermediate states that will
  36. sound bad.
  37.  
  38. That's the reason why parallel assignment is useful:  it lets you move from
  39. one state to another *without* introducing strange intermediate states.
  40.  
  41. -- 
  42. Fifty years of programming language research, and we end up with C++ ???
  43. Richard A. O'Keefe; http://www.cs.rmit.edu.au/~ok; RMIT Comp.Sci.
  44.